#ifndef VOTANTE_H_
#define VOTANTE_H_
#include "IEntidad.h"
#include "Distrito.h"
#include "Eleccion.h"
#include <string>
#include <vector>

using namespace std;

namespace Entidades {

class Votante: public IEntidad {

private:

	int dni;
	string apeNom;
	int clave;
	string domicilio;
	Distrito* distrito;
	vector<Eleccion*>* elecciones;

public:

	Votante();

	int getDNI() const;
	string getNombreYApellido() const;
	int getClave() const;
	string getDomicilio() const;
	Distrito *getDistrito() const;
	vector<Eleccion*> *getElecciones() const;
	void setDNI(int dni);
	void setNombreYApellido(string apeNom);
	void setClave(int clave);
	void setDomicilio(string domicilio);
	void setDistrito(string nombreDelDistrito);
	void addEleccion(Eleccion *eleccion);
	bool validarContrasenia(string clave);

	virtual void hidratarse(char* buffer, unsigned int tamanioDelBuffer);
	virtual char* construirBuffer();
	virtual unsigned int getTamanioDelBuffer();
	virtual void marcarComoBorrado();

	virtual ~Votante();
};

}
#endif /* VOTANTE_H_ */
